The cloud computing environment is an enhancement to the predecessor grid environment, whereby multiple grids and other computation resources may be further abstracted by a cloud layer, thus making disparate devices appear to an end-user/consumer as a single pool of seamless resources that are highly scalable. These resources may include such things as physical or logical compute engines, servers and devices, device memory, storage devices, etc.
Computer hardware and software applications are often critical to the efficient operations of companies, as well as the stability of the world economy as a whole. Many of today's businesses require 24/7 availability for critical applications and downtime of such critical applications can quickly decrease revenue. As a result, companies have to prepare for unplanned computer system outages that may shut down their business operations. Unplanned outages can be caused by, among other things, someone gaining unauthorized access to a business's computer systems, computer hardware failure, natural disasters, or even a disaster caused by human error or malicious intent. To prepare for unplanned computer system outages, companies create disaster recovery plans, which are utilized to provide for continuity and/or restoration of computer systems that are critical for business operations. Preparation of disaster recovery plans has expanded as businesses have come to realize the extent of their dependency on computer systems and applications.
Moreover, companies have to prepare for planned outages such as test deployments for scheduled software application version upgrades, or for scheduled maintenance of computer hardware systems and components. Generally, companies announce to customers and employees when a planned outage will occur, such as a software application version upgrade. Upgrades may take more time than expected and occasionally, can even cause more unforeseen problems than an unplanned outage if loss or corruption of data and/or applications occurs.
Accordingly, companies typically need their production environment to be ready for software application installation/upgrade testing, and/or “mock” disaster recovery scenario testing. For example, a company may be running a computer software version 1.0 in a first production environment and wants to upgrade the first production environment to computer software version 1.1. Therefore, the company may need a remote second production environment that runs in parallel to the first production environment, which utilizes a set of the first production environment's data. One purpose of the remote second production environment would be to test a computer software version 1.1 upgrade, prior to deployment of the version 1.1 upgrade to the first production environment.
Furthermore, a company may also desire, for remote data protection purposes, to use the remote second production environment as a “hot backup” location, and perform testing so as to ensure the company can switch back and forth between the first production environment and the remote second production environment in case a computer system outage occurs.